65 uint16_t
hper[3] = {8,16,26};
66 uint16_t
lper[4] = {8,16,26};
78 WDT_A_hold(WDT_A_BASE);
81 GPIO_setAsPeripheralModuleFunctionOutputPin(
84 GPIO_PRIMARY_MODULE_FUNCTION
91 FRAMCtl_A_configureWaitStateControl(FRAMCTL_A_ACCESS_TIME_CYCLES_1);
97 CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
98 CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
99 CS_initClockSignal(CS_ACLK, CS_VLOCLK_SELECT, CS_CLOCK_DIVIDER_4);
101 CS_setDCOFreq(CS_DCORSEL_1, CS_DCOFSEL_4);
106 CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);
107 CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);
108 CS_initClockSignal(CS_ACLK, CS_VLOCLK_SELECT, CS_CLOCK_DIVIDER_1);
117 SAPH_A_unlock(SAPH_A_BASE);
120 SAPH_A_configPHYParam saphAPHYConfig = {0};
121 saphAPHYConfig.outputFunction = SAPH_A_PHY_OUTPUT_PULSEGENERATOR_SINGLE_DRIVE;
122 SAPH_A_configurePHY(SAPH_A_BASE, &saphAPHYConfig);
125 SAPH_A_configPPGParam saphAConfig = {0};
126 saphAConfig.enablePrescaler = SAPH_A_PPG_PRESCALER_ENABLE;
127 saphAConfig.triggerSource = SAPH_A_PPG_TRIGGER_SOURCE_TIMER;
128 saphAConfig.channelSelect = SAPH_A_PPG_CHANNEL_0;
129 saphAConfig.portSelect = SAPH_A_PPG_PORT_CHARGED_BY_PPG;
130 SAPH_A_configurePPG(SAPH_A_BASE, &saphAConfig);
134 Timer_A_initUpModeParam timerParam2 = {0};
135 timerParam2.timerPeriod = 9400;
137 TA2CCTL1 = OUTMOD_7 | CCIE;
139 timerParam2.clockSource = TIMER_A_CLOCKSOURCE_ACLK;
141 timerParam2.timerClear = TIMER_A_DO_CLEAR;
142 timerParam2.startTimer =
true;
143 Timer_A_initUpMode(TA2_BASE, &timerParam2);
148 __bis_SR_register(LPM0_bits | GIE);
154 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
155 #pragma vector = TIMER2_A1_VECTOR
156 __interrupt
void Timer2_A1_ISR(
void)
157 #elif defined(__GNUC__)
158 void __attribute__ ((interrupt(TIMER2_A1_VECTOR))) Timer2_A1_ISR (
void)
160 #error Compiler not supported!
163 SAPH_A_configXPGParam saphAXPGParam = {0};
165 switch(__even_in_range(TA2IV, TAIV__TAIFG))
167 case TAIV__NONE:
break;
169 saphAXPGParam.eventType = SAPH_A_DMA_TRIGGER_EVENT;
170 saphAXPGParam.extendedMode = SAPH_A_DUAL_TONE_LOOP;
171 saphAXPGParam.extraPulses = 2;
172 SAPH_A_configureExtendedPPG(SAPH_A_BASE, &saphAXPGParam);
174 SAPH_A_setXPGLowPeriod(SAPH_A_BASE, 16);
175 SAPH_A_setXPGHighPeriod(SAPH_A_BASE, 16);
178 dmaParam.channelSelect = DMA_CHANNEL_2;
179 dmaParam.transferModeSelect = DMA_TRANSFER_REPEATED_BLOCK;
181 DMA_setSrcAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&
RAM_XE, DMA_DIRECTION_INCREMENT);
182 DMA_setDstAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&SAPHPGC, DMA_DIRECTION_INCREMENT);
184 DMA_setTransferSize(DMA_CHANNEL_2, 3);
185 DMA_enableTransfers(DMA_CHANNEL_2);
187 DMA_setSrcAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)
RAM_XE+3, DMA_DIRECTION_INCREMENT);
188 DMA_setDstAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&SAPHXPGCTL, DMA_DIRECTION_INCREMENT);
191 dmaParam.channelSelect = DMA_CHANNEL_3;
193 DMA_setSrcAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)&
RAM_DMA_CONFIG, DMA_DIRECTION_INCREMENT);
194 DMA_setDstAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)&DMA2SA, DMA_DIRECTION_INCREMENT);
196 DMA_setTransferSize(DMA_CHANNEL_3, 9);
197 DMA_enableTransfers(DMA_CHANNEL_3);
199 DMA_setSrcAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)
RAM_DMA_CONFIG+9, DMA_DIRECTION_INCREMENT);
201 GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
203 case TAIV__TAIFG:
break;
212 HSPLL_xtalInitParam
param = {0};
214 param.oscillatorType = 0x0000;
215 param.oscillatorEnable = HSPLL_XTAL_ENABLE;
216 param.xtlOutput = HSPLL_XTAL_OUTPUT_ENABLE;
217 HSPLL_xtalInit(HSPLL_BASE, &
param);
221 Timer_A_initUpModeParam timerParam = {0};
222 timerParam.timerPeriod = 5;
223 timerParam.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE;
225 timerParam.clockSource = TIMER_A_CLOCKSOURCE_ACLK;
227 timerParam.timerClear = TIMER_A_DO_CLEAR;
228 timerParam.startTimer =
true;
229 Timer_A_initUpMode(TA4_BASE, &timerParam);
232 __bis_SR_register(LPM3_bits | GIE);
238 while(HSPLL_getOscillatorStatus(HSPLL_BASE) == HSPLL_OSCILLATOR_NOT_STARTED);
241 HSPLLUSSXTLCTL &= ~XTOUTOFF;
249 HSPLL_initParam hspllParam = {0};
251 hspllParam.multiplier = 0x004c;
252 hspllParam.frequency = HSPLL_GREATER_THAN_6MHZ;
253 HSPLL_init(HSPLL_BASE, &hspllParam);
256 UUPS_turnOnPower(UUPS_BASE, UUPS_POWERUP_TRIGGER_SOURCE_USSPWRUP);
259 while(UUPS_getPowerModeStatus(UUPS_BASE) != UUPS_POWERMODE_READY);
262 while(HSPLL_isLocked(HSPLL_BASE) == HSPLL_UNLOCKED);
267 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
268 #pragma vector = TIMER4_A0_VECTOR
269 __interrupt
void Timer4_A0_ISR(
void)
270 #elif defined(__GNUC__)
271 void __attribute__ ((interrupt(TIMER4_A0_VECTOR))) Timer4_A0_ISR (
void)
273 #error Compiler not supported!
277 Timer_A_stop(TA4_BASE);
286 unsigned long SAPHPGC_addr, SAPHXPGCTL_addr;
287 SAPHPGC_addr = (
unsigned long)(uintptr_t)(&SAPHPGC);
288 SAPHXPGCTL_addr = (
unsigned long)(uintptr_t)(&SAPHXPGCTL);
290 DMACTL1 = DMA2TSEL_27|DMA3TSEL_27;
292 SAPH_A_configXPGParam saphAXPGParam = {0};
293 saphAXPGParam.eventType = SAPH_A_DMA_TRIGGER_EVENT;
294 saphAXPGParam.extendedMode = SAPH_A_DUAL_TONE_LOOP;
295 saphAXPGParam.extraPulses = 2;
296 SAPH_A_configureExtendedPPG(SAPH_A_BASE, &saphAXPGParam);
298 SAPH_A_setXPGLowPeriod(SAPH_A_BASE, 16);
299 SAPH_A_setXPGHighPeriod(SAPH_A_BASE, 16);
303 dmaParam.channelSelect = DMA_CHANNEL_2;
304 dmaParam.transferModeSelect = DMA_TRANSFER_REPEATED_BLOCK;
306 DMA_setSrcAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&
RAM_XE, DMA_DIRECTION_INCREMENT);
307 DMA_setDstAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&SAPHPGC, DMA_DIRECTION_INCREMENT);
309 DMA_setTransferSize(DMA_CHANNEL_2, 3);
310 DMA_enableTransfers(DMA_CHANNEL_2);
312 DMA_setSrcAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)
RAM_XE+3, DMA_DIRECTION_INCREMENT);
313 DMA_setDstAddress(DMA_CHANNEL_2, (uint32_t)(uintptr_t)&SAPHXPGCTL, DMA_DIRECTION_INCREMENT);
316 dmaParam.channelSelect = DMA_CHANNEL_3;
318 DMA_setSrcAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)&
RAM_DMA_CONFIG, DMA_DIRECTION_INCREMENT);
319 DMA_setDstAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)&DMA2SA, DMA_DIRECTION_INCREMENT);
321 DMA_setTransferSize(DMA_CHANNEL_3, 9);
322 DMA_enableTransfers(DMA_CHANNEL_3);
324 DMA_setSrcAddress(DMA_CHANNEL_3, (uint32_t)(uintptr_t)
RAM_DMA_CONFIG+9, DMA_DIRECTION_INCREMENT);
328 for (
i = 0;
i < 5;
i++)
340 for (
i = 0;
i < 2;
i++)
346 for (
i = 0;
i < 3;
i++)
352 for (
i = 0;
i < 2;
i++)
MPU_initThreeSegmentsParam param
uint16_t RAM_DMA_CONFIG[60]
__bic_SR_register_on_exit(LPM3_bits|GIE)